# 定义 电影类
import os.path


class Movie:
    def __init__(self,number,name,box_office,score):
        # 定义 电影序号，名字，票房，评分
        self.number = number
        self.name = name
        self.box_office = box_office
        self.score = score

# 定义 电影管理
class MovieMs:
    movies = []
    def __init__(self):
        pass

    # 定义菜单
    def menu(self):
        while 1:
            print("1 - 从文件中读取数据保存到列表中 - （输入数字1）")
            print("2 - 显示文从文件中读取数据保存到列表中件中前10条和后10条数据 - （输入数字2）")
            print("3 - 对数据进行汇总统计 - （输入数字3）")
            print("4 - 把数据统计以csv形式保存到文件中 - （输入数字4）")
            print("0 - 退出 - （输入数字0）")

            choose_num = int(input("请选择功能："))

            if choose_num == 1:
                print("欢迎使用 ‘1’号 功能")
                self.do_read()

            elif choose_num == 2:
                print("欢迎使用 ‘2’号 功能")
                self.do_defore10andend10()

            elif choose_num == 3:
                print("欢迎使用 ‘3’号 功能")
                self.do_statistics()

            elif choose_num == 4:
                print("欢迎使用 ‘4’号 功能")
                self.do_saveword()

            else:
                return 0

    # 从文件中读取数据保存到列表中
    def do_read(self):
        # 文件位置
        path = "/课堂代码笔记/moveis_data.txt"

        # 一、检查文件是否存在
        if not os.path.exists(path):
            print("文件不存在！")
        else:
            # 二、文件存在则打开并使用‘读’的操作
            with open(path,"r") as f:
                index = 0
                header = []
                # 三、遍历并解析文件的数据
                for line in f:
                    print(line)
            # 因为数据的形式中有 ；所以需要以 ；隔开
                    movie = line.split(";")
                    movie[-1] = movie[-1].split("\n")[0]

                    print(movie)
                    if index == 0:
                        header = movie
                        index += 1
                    else:
                        # 四、将解析的数据实例化，并保存到电影列表中
                        # instance 是电影实例的对象，用于保存信息
                        instance = Movie(movie[0],movie[1],movie[3],movie[4])
                        self.movies.append(instance)
                        index += 1

    # 显示文件中前10条和后10条数据
    def do_defore10andend10(self):
        for j in self.movies:
            print(j.number,j.name,j.box_office,j.score)

    # 对数据进行汇总统计
    def do_statistics(self):
        for i in self.movies:
            print(i)

    # 把数据统计以csv形式保存到文件中
    def do_saveword(self):
        number = input("请输入电影序号")
        name = input("请输入电影名称")
        box_office = input("请输入电影票房")
        scoer = input("请输入电影评分")

        movie = Movie(number,name,box_office,scoer)
        self.movies.append(movie)

        # 导入文件
        path = "/课堂代码笔记/moveis_data.txt"
        if not os.path.exists(path):
            print("文件不存在")
        else:
            with open(path,"a") as f:
                # 构造数据
                line = number + ";" + name  + ";" + box_office + ";" + scoer + "\n"
                f.write(line)

# 主函数
if __name__ == '__main__':
    ms = MovieMs()
    ms.menu()



